package nth.bananas.solving;

import java.util.HashSet;
import java.util.Set;

import edu.smu.tspell.wordnet.Synset;
import edu.smu.tspell.wordnet.WordNetDatabase;

public class WordUtility {
	
	private static WordNetDatabase wordNetDB;
	private static Set<String> wordNetGaps;
	
	static {
		System.setProperty("wordnet.database.dir", "C:\\Program Files\\WordNet\\2.1\\dict\\");
		wordNetDB = WordNetDatabase.getFileInstance();
		wordNetGaps = new HashSet<String>();
		
		// ain't it a shame...
		wordNetGaps.add("of");
		wordNetGaps.add("to");
		wordNetGaps.add("the");
		wordNetGaps.add("that");
		wordNetGaps.add("this");
		wordNetGaps.add("these");
		wordNetGaps.add("their");
	}

	public static boolean isValidWord(String word) {
		word = word.toLowerCase();
		
		if (word.length() < 2) {
			return false;
		}
		
		if (wordNetGaps.contains(word)) {
			return true;
		}
		
		Synset[] synsets = wordNetDB.getSynsets(word);
		if (synsets.length == 0) {
			return false;
		}
		return true;
	}
}